Forward error correction (FEC) coding is frequently employed to effectively improve the signal-to-noise ratio of a data transmission channel. Convolutional coding and turbo coding are two well-known types of forward error correction coding. Convolutional coding is sometimes used for encoding voice data for mobile telephone applications. Turbo coding is sometimes used for encoding image data to be transmitted in a mobile application.
It is sometimes desirable for a device to have capabilities for both Viterbi forward error correction decoding (used to decode convolutional encoded data) and turbo forward error correction decoding. This may be done by providing respective processing blocks for Viterbi and turbo decoding, but at the cost of hardware complexity and processing inefficiency.